This section provides background information related to the present disclosure which is not necessarily prior art.
Mobile devices are configured to execute a host of applications designed by a wide array of developers. Many of these applications are configured to send and receive data. For instance, such applications can include video streaming, audio streaming, video chat, file transfer, and messaging applications. The perceived quality of applications streaming large amounts of data can be adversely affected when the network performance, e.g., throughput or network delay, is suboptimal.
For example, a video streaming application may request a lower quality video stream or a photo sharing application may send a lower resolution photo when the network performance is suboptimal. These applications however try to determine the current network performance based solely on the current session or by performing diagnostics. Thus, if the application has just started executing or if the application has not been executing for a sufficient duration, the application cannot efficiently adjust network operations to compensate for the network condition of the mobile device. Thus, there is a need for an efficient means to estimate network performance.